<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Eventos extends CI_Controller {

	function __construct() {
		parent::__construct();
		if(!$this->session->userdata('disproju')){
			$this->session->sess_destroy();
			redirect('login', 'refresh');
		}
	}
	public function index()	{
		$this->load->view('welcome_message');
	}
	public function novo()	{
		//******************************************************
		//   PERMISSAO 
		//******************************************************
		$session_data = $this->session->userdata('disproju');
		temPermissao(array('1','2'),$session_data);
		
		$local = new Local();
		$local->order_by("nome_local asc")->get();
		
		$lo = array();
		foreach($local as $a){
			$lo[$a->id ] = $a->nome_local;
		}
		$data['local'] = $lo;
		
		
		$tipo = new TipoEvento();
		$tipo = $tipo->where_between('id', "3","7")->get();

		
		$tipoevento = array();
		foreach($tipo as $a){
			$tipoevento[$a->id ] = $a->nome_evento;
		}
		$data['tipoevento'] = $tipoevento;
		
		$this->load->view('header.php');
		$this->load->view('v_audiencia',$data);
	}
	
	public function novomodal($id)	{
		//******************************************************
		//   PERMISSAO 
		//******************************************************
		$session_data = $this->session->userdata('disproju');
		temPermissao(array('1','2'),$session_data);
	
		$processo = new Processo();
		$processo->where("numeroprocesso",$id)
		->get();
			
		$local = new Local();
		$local->order_by("nome_local asc")->get();
		$lo = array();
		foreach($local as $a){
			$lo[$a->id ] = $a->nome_local;
		}
		$data['local'] = $lo;
		
		
		$tipo = new TipoEvento();
		$tipo = $tipo->where_between('id', "3","7")->get();
		$tipoevento = array();
		foreach($tipo as $a){
			$tipoevento[$a->id ] = $a->nome_evento;
		}
		$data['tipoevento'] = $tipoevento;


		$data['nprocesso'] = $id;
		$data['idprocesso'] = $processo->id;
		
		
		//$this->load->view('header.php');
		$this->load->view('v_audiencia_modal',$data);
	}
	
	public function salvar(){
	
		//******************************************************
		//   PERMISSAO 
		//******************************************************
		$session_data = $this->session->userdata('disproju');
		temPermissao(array('1','2'),$session_data);
		
		if($this->input->post()){
		
			$processo = new Processo();
			$processo->where("numeroprocesso",$this->input->post('numero_processo'));
			$processo->get();
			
			//VERIFICAR SE O ADV DA AUDIENCIA EH AQUELE QUE RECEBE O PROCESSO INICIALMENTE
			$consulta = new Processo_Usuario();
			$consulta->where("processo_id",$processo->id)
			->where("tipoevento_id","1")
			->where("status","E")
			->get();
			
			
			
			$u = new Processo_Usuario();
			
			$u->tipoevento_id =  $this->input->post('tipoevento');
			$u->local_id = $this->input->post('local');
			$u->processo_id = $consulta->processo_id;
			$u->usuario_id = $consulta->usuario_id;
			$u->dt_evento = brToUsaHora($this->input->post('dia'));
			$u->status = statusEvento($u->tipoevento_id);
			$u->observacao = strtoupper($this->input->post('observacao'));

			if($u->save()){
				$acao = $u->check_last_query(false,true);
				$log = new Log();
				$log->ip = $this->session->userdata('ip_address');
				$log->usuario = $session_data["nome"];
				$log->acao = $acao;
				$log->dt_log = date('Y-m-d H:i:s');
				$log->save();
				echo 'OK';
			}else{
				$acao = $u->error->string;
				$log = new Log();
				$log->ip = $this->session->userdata('ip_address');
				$log->usuario = $session_data["nome"];
				$log->acao = $acao;
				$log->dt_log = date('Y-m-d H:i:s');
				$log->save();
				
				echo $u->error->string;
			}
			
			//echo $u->error->string;
		}else{
			redirect("eventos/novo");
		
		}
	}
	public function editar(){
		//******************************************************
		//   PERMISSAO 
		//******************************************************
		$session_data = $this->session->userdata('disproju');
		temPermissao(array('1','2'),$session_data);
		
		if($this->input->post("status_evento")){
			//CASO ACAO SEJA REMARCAR, ALTERA STATUS DA AUDIENCIA/PERICIA ANTERIOR PARA "2" (REMARCADO)
			$ultimo = new Processo_Usuario();
			$ultimo->where("processo_id",$this->input->post('idprocesso'))
			->where("tipoevento_id",$this->input->post('idevento'))
			->where("id",$this->input->post('id'))
			->order_by("id desc")
			->limit("1")
			->get();
			
			$u = new Processo_Usuario();
			
			if($this->input->post('status_evento') == '2' ){
				//VERIFICAR SE O ADV DA AUDIENCIA EH AQUELE QUE RECEBE O PROCESSO INICIALMENTE
				$consulta = new Processo_Usuario();
				$consulta->where("processo_id",$this->input->post('idprocesso'))
				->where("tipoevento_id","1")
				->where("status","E")
				->get();
				
				//CARREGA DADOS PARA SALVAR AUDIENCIA/PERICIA
				$u->tipoevento_id =  $this->input->post('tipoevento');
				$u->local_id = $this->input->post('local');
				$u->processo_id = $this->input->post('idprocesso');
				$u->usuario_id = $consulta->usuario_id;
				$u->dt_evento = brToUsaHora($this->input->post('dia'));
				$u->status = statusEvento($this->input->post('tipoevento'));
				$u->observacao = strtoupper($this->input->post('observacao'));
	
				if($u->save()){
					if($ultimo->status_evento == '1'){
						$ultimo->status_evento = '2';
					}
				}else{
					//seleciona permissao do banco de dados
					/*
					$evento = new TipoEvento();
					$data['evento'] = $evento->consultaEvento('3');
					$data['audiencia']  = $u;
					$this->load->view('v_audiencia',$data);*/
					echo $u->error->string;
				}
			}elseif($this->input->post('status_evento') == '3' ){
					$ultimo->status_evento = '3';
					
			}elseif($this->input->post('status_evento') == '4' ){
					$ultimo->status_evento = '4';
			}	
			if($ultimo->save()){
				echo 'OK';
			}else{
				echo $ultimo->error->string;
			}
		}else{
			redirect("eventos/consulta");
		}
	}
	public function consulta()	{
		$session_data = $this->session->userdata('disproju');
		$data["session_data"] = $session_data;
		
		$evento = new Evento();
		$aux = new Evento();
		$aux  = $evento->listaEventos();
		
		$data["evento"] = $aux;
		
		
		$this->load->view('header.php');
		$this->load->view('v_audiencia_consulta',$data);
	}
	public function relatorio()	{	
		//******************************************************
		//   PERMISSAO 
		//******************************************************
		$session_data = $this->session->userdata('disproju');
		temPermissao(array('1','2'),$session_data);
		
		if($this->input->post()){
		
			$status = $this->input->post("status");
			if($this->input->post("status") == '999'){
				$status = "1,2,3,4";
			
			}
			
			$usuario = '';
			if($this->input->post("usuario") == '999'){
				$usuarios = new Usuario();
				$usuarios->select('id')->get();
				foreach($usuarios as $user){
					$usuario .= $user->id.',';
				}
				$usuario = substr_replace( $usuario, "", -1 );
			}else{
				$usuario = $this->input->post("usuario");
			}
			
			$tipoevento = $this->input->post("evento");
			if($this->input->post("evento") == '999'){
				$tipoevento = "3,4,5,6,7";
			}
		
			$evento = new Evento();
			$aux = new Evento();
			
			$aux = $evento->relatorioAudiencia($status,$usuario,$tipoevento,brToUsa($this->input->post("inicio")),brToUsa($this->input->post("fim")));
			//------------------------------------------------------------------------------------------------------------------------
		
			$pdf = new Pdf(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
			gerarRelatorio($pdf);
			$pdf->AddPage('L', 'A4');
			
			// TITULO DA PAGINA
			$pdf->Write(0, 'Relatório de Audiências/Perícias', '', 0, 'C', true, 0, false, false, 0);
			$pdf->Ln();
			$pdf->SetFont('times', '', 9);
			$pdf->Write(0, 'Período: '.$this->input->post("inicio").' à '.$this->input->post("fim"), '', 0, 'C', true, 0, false, false, 0);
			$pdf->Ln();
			if($aux->exists()){	
				//*************************************************************************************
				// DADOS
				//*************************************************************************************
				// Color and font restoration
				$pdf->SetFillColor(255, 255, 255);
				$pdf->SetTextColor(0);
				$pdf->SetFont('times', '', 8);
				$count = 1;
				$controle = 1;
				$left_colunm = '';
				$right_colunm = '';
				
				foreach($aux as $row) {	
					$status = '';
					switch($row->status_evento){
						case '1': $status = "ATIVA" ;break;
						case '2': $status = "REMARCADA" ;break;
						case '3': $status = "CANCELADA" ;break;
						case '4': $status = "CONCLUÍDA" ;break;
						default: $status = "" ;break;
					}
					if($controle == 1){
						$left_colunm .= '#'.$count++.'<br/>';
						$left_colunm .= 'Status    : '.$status.'<br/>';
						$left_colunm .= 'Data/Hora   : <b>'.$row->dt_evento.'</b>    |    '.'Número Processo: <b>'.$row->numeroprocesso.'</b><br/>';
						$left_colunm .= 'Autor (res)  : '.$row->autor.'<br/>';
						$left_colunm .= 'Tipo            : '.$row->nome_evento.'<br/>';
						$left_colunm .= 'Advogado   : '.$row->nome_completo.'<br/>';
						$left_colunm .= 'Observação : '.$row->observacao.'<br/>';
						$left_colunm .= '_________________________________________________________________________________<br/>';
						$controle = 2;
					}else{
						$right_colunm .= '#'.$count++.'<br/>';
						$right_colunm .= 'Status    : '.$status.'<br/>';
						$right_colunm .= 'Data/Hora   : <b>'.$row->dt_evento.'</b>    |    '.'Número Processo: <b>'.$row->numeroprocesso.'</b><br/>';
						$right_colunm .= 'Autor (res)  : '.$row->autor.'<br/>';
						$right_colunm .= 'Tipo            : '.$row->nome_evento.'<br/>';
						$right_colunm .= 'Advogado   : '.$row->nome_completo.'<br/>';
						$right_colunm .= 'Observação : '.$row->observacao.'<br/>';
						$right_colunm .= '_________________________________________________________________________________<br/>';
						$controle = 1;
					}
				}
				// get current vertical position
				$y = $pdf->getY();

				// write the first column
				$pdf->writeHTMLCell(140, '', '', $y, $left_colunm, 0, 0, 1, true, 'J', true);

				// write the second column
				$pdf->writeHTMLCell(140, '', '', '', $right_colunm, 0, 1, 1, true, 'J', true);
				/*$controle = 1;
				$left_colunm = '';
				$right_colunm = '';*/

				// reset pointer to the last page
				$pdf->lastPage();
				
				$pdf->Output('Relatorio.pdf', 'I');
			}else{
				$pdf->Write(0, 'Nenhum registro foi encontrado', '', 0, 'C', true, 0, false, false, 0);
				$pdf->Output('Relatorio.pdf', 'I');
			
			
			}
			
			

		}else{
			$u = new Usuario();
			$u->where('permissao_id', "3")->order_by("nome_completo asc")->get();
			$user = array();
			foreach($u as $a){
				$user[$a->id ] = $a->nome_completo;
			}
			$data["usuario"] = $user;
			
	
			$evento = new TipoEvento();
			$evento->where_between("id","3","7")->order_by("nome_evento asc")->get();
			$e = array();
			foreach($evento as $a){
				$e[$a->id ] = $a->nome_evento;
			}
			$data["evento"] = $e;
			
			//*********************************************************
			$p = new TipoEvento();
			$p->where_between('id', "3","7")->get();
			
			$tipoevento = array();
			$aux = array();
			$dados = array();
			
			foreach($p as $a){
				$tipoevento[$a->id ] = $a->nome_evento;
				$aux['id'] = $a->id;
				$aux['name'] = $a->nome_evento;
				array_push($dados,$aux);
			}
			
			$data['tipoevento'] = $tipoevento;
			$data['tipoeventoinfo'] = json_encode($dados);
			//*********************************************************
			
			$this->load->view('header.php');
			$this->load->view('v_relatorio_audiencia',$data);
		}
	}
	public function info($id){
	
		$session_data = $this->session->userdata('disproju');
		$data["session_data"] = $session_data;
		
		$p = new Processo_Usuario();
		if( ! empty($id))
		{
			
			$p->get_by_id($id);
			if( ! $p->exists())
			{
				show_error('Audiencia não existe!');
			}else{
				$processo = new Processo();
				$processo->select("numeroprocesso")->where("id",$p->processo_id)->get();
				$data["numeroprocesso"] = $processo->numeroprocesso;
				$data["processo_id"] = $p->processo_id;
				
				$data["audiencia"] = $p;
				
				$local = new Local();
				$local->where("id",$p->local_id)->get();
				$data["nome_local"] = $local->id;
				
				$evento = new Evento();
				$aux = new Evento();
				$aux  = $evento->listaEvento($p->processo_id);
				$data["evento"] = $aux;
				
				
				$tipo = new TipoEvento();
				$tipo = $tipo->where_between('id', "3","7")->get();
				$tipoevento = array();
				foreach($tipo as $a){
					$tipoevento[$a->id ] = $a->nome_evento;
				}
				$data['tipoevento'] = $tipoevento;

				
				$local = new Local();
				$local->order_by("nome_local asc")->get();
				
				$lo = array();
				foreach($local as $a){
					$lo[$a->id ] = $a->nome_local;
				}
				$data['local'] = $lo;
		
				$this->load->view('header.php');
				$this->load->view('v_audiencia_info',$data);
			}
		}
	}
	public function consultaTipoEventoJson(){
		$term = $_GET['q'];
		$aux = array();
		$dados = array();
		
		$tp = new TipoEvento();
		$tp->like('nome_evento', $term);
		$tp->where_between('id', "3","7")->get();
		
		foreach($tp as $p){
			$aux["id"] = $p->id;
			$aux["name"] = $p->nome_evento;
			array_push($dados,$aux);
		}
		echo json_encode($dados);
		
	
	}
	public function consultaTipoProcessoJsonInfo(){
		
		$aux = array();
		$dados = array();
		
		$p = new TipoEvento();
		$p->where_between('id', "3","7")->get();
		
		foreach($p as $tp){
			$aux['id'] = $tp->id;
			$aux['name'] = $tp->nome_evento;
			array_push($dados,$aux);
		}
		return($dados);
		
	
	}
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */